package models

import "time"

// Topic 存储 Topic 配置
type Topic struct {
	// 不使用 gormModel 的 Id，因为主键是 TopicName
	TopicName         string    `gorm:"type:varchar(255);primaryKey" json:"topic_name"` // 主键
	MQPluginType      string    `gorm:"type:varchar(50);not null" json:"mq_plugin_type"`
	MQTarget          string    `gorm:"type:varchar(255);not null" json:"mq_target"`
	Description       string    `gorm:"type:text" json:"description"`
	DefaultRequireAck bool      `gorm:"not null;default:false" json:"default_require_ack"`
	IsActive          bool      `gorm:"not null;default:true;index" json:"is_active"` // 添加索引
	CreatedAt         time.Time `json:"created_at"`                                   // 手动添加时间戳
	UpdatedAt         time.Time `json:"updated_at"`                                   // 手动添加时间戳
	// DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` // 如果需要软删除，也手动添加
}

// TableName 自定义表名
func (Topic) TableName() string {
	return "topics"
}

// 3. 修复 Topic 模型中的外键问题
